package br.com.truta.control;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import br.com.truta.bd.DaoException;
import br.com.truta.bd.dao.DespesaDAO;
import br.com.truta.model.Despesa;
import br.com.truta.model.Usuario;
import br.com.truta.util.Constantes;

public class DespesaControl {
	public static boolean salvaDespesa(HttpServletRequest req) {
		try {
			Despesa despesa = mapeiaDespesa(req);
			return DespesaDAO.insereDespesa(despesa);
		} catch (DaoException e) {
			e.printStackTrace();
		}
		return false;
	}

	public static List<Despesa> buscaDespesa(HttpServletRequest req) {
		Usuario usuario = (Usuario) req.getSession().getAttribute("usuario");
		List<Despesa> listaDespesa = null;
		try {
			listaDespesa = DespesaDAO.buscaDespesa(usuario.getId());
		} catch (DaoException e) {
			e.printStackTrace();
		}

		return listaDespesa;
	}

	/**
	 * Classe responsavel por mapear os dados de Despesa
	 * da Pagina JSP CadastroUsuario para o objeto despesa
	 * 
	 * @param req
	 * @return despesa Mapeado
	 */
	private static Despesa mapeiaDespesa(HttpServletRequest req) {
		Despesa despesa = new Despesa();
		Usuario usuario = (Usuario) req.getSession().getAttribute("usuario");

		despesa.setIdUsuario(usuario.getId());
		despesa.setNome(req.getParameter(Constantes.PARAMETRO_DESPESA_NOME));
		despesa.setIdTipoDespesa(Integer.parseInt(req.getParameter(Constantes.PARAMETRO_DESPESA_TIPO_DEPESA_ID)));

		return despesa;
	}

}
